#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/sinks/basic_file_sink.h>
#include <iostream>

int main()
{
    // 设置全局的日志输出等级
    spdlog::set_level(spdlog::level::level_enum::debug);
    // 设置全局的刷新策略--每隔 N 秒刷新一次
    spdlog::flush_every(std::chrono::seconds(1));
    // 遇到debug以上等级日志立即刷新
    spdlog::flush_on(spdlog::level::level_enum::debug);

    // 创建同步日志器(标准输出/文件)--工厂模式默认创建的就是同步日志器
    auto logger = spdlog::stdout_color_mt("default-logger");
    // auto logger = spdlog::basic_logger_mt("file-logger","sync.log");

    // 设置日志刷新策略以及设置日志的输出等级
    // logger->flush_on(spdlog::level::level_enum::debug);
    // logger->set_level(spdlog::level::level_enum::debug);

    // 设置日志的输出格式
    logger->set_pattern("[%n][%H:%M:%S][%t][%-8l] %v");

    logger->trace("hello {}", "world");
    logger->debug("hello {}", "world");
    logger->warn("hello {}", "world");
    logger->error("hello {}", "world");
    logger->critical("hello {}", "world");

    std::cout << "日志输出完毕" << std::endl;
    return 0;
}